package com.wwdx.service.impl;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
import cn.binarywang.wx.miniapp.message.WxMaMessageRouter;
import com.wwdx.wechat.config.BaseWxConfig;
import org.springframework.context.annotation.Bean;

import javax.annotation.PostConstruct;

/**
 * @author liguoliang
 * @date 2018/4/17 13:18
 */
public abstract class BaseWxMaService extends WxMaServiceImpl{
    
    @PostConstruct
    public void init(){
        WxMaInMemoryConfig config = new WxMaInMemoryConfig();
        // 设置微信小程序的appid
        config.setAppid(this.getServerConfig().getAppid());
        // 设置微信小程序的appsecret
        config.setSecret(this.getServerConfig().getAppsecret());
        // 设置微信公众号的token
        config.setToken(this.getServerConfig().getToken());
        // 设置消息加解密密钥
        config.setAesKey(this.getServerConfig().getAesKey());
        //消息格式
        config.setMsgDataFormat(this.getServerConfig().getMsgDataFormat());
        super.setWxMaConfig(config);
    }
    
    @Bean
    public WxMaMessageRouter router(WxMaService service) {
        return new WxMaMessageRouter(service);
    }

    /**
     * 获取微信配置信息
     * @return BaseWxConfig 子类
     */
    protected abstract BaseWxConfig getServerConfig();
}
